/* sm_core.h -- header do arquivo central
 *
 * Copyright (C) 2008, Diogo F. S. Ramos <diogo.ramos@usp.br>
 *                     Márcio Rogério
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

#ifndef SM_CORE_H_
#define SM_CORE_H_

#include "sm_boat.h"
#include "sm_sea.h"

typedef struct sm_world_t sm_world_t;
typedef struct sm_camera_t sm_camera_t;

struct sm_world_t
{
    sm_boat_t * boat;
    sm_sea_t * sea;
    sm_camera_t * camera;

    GLint wire_frame;

};

struct sm_camera_t
{
    GLfloat mouse_posX_ant;
    GLfloat mouse_posY_ant;
    GLfloat angleX;
    GLfloat angleY;
    GLfloat angle_inc;

    GLfloat look_at_X;
    GLfloat line_of_sightX;
    GLfloat look_at_Y;
    GLfloat line_of_sightY;
    GLfloat look_at_Z;
    GLfloat line_of_sightZ;
    GLfloat look_at_radius;

    GLfloat posX;
    GLfloat posY;
    GLfloat posZ;

    GLfloat angle_alpha;
    GLfloat angle_teta;

    GLint screen_width;
    GLint screen_height;
};

void sm_run(int argc, char *argv[]);

#endif	/* SM_CORE_H_ */
